package com.gopay.common.constants.trans;



/**
 * 付款通道类型
 * 
 * @PayChannel.java
 * @author zhanglei
 * @2012-12-28 下午2:25:28 www.gopay.com.cn Inc.All rights reserved.
 */
public enum PayChannel {
	/** 本订单不涉及付款 */
	_00("00","本订单不涉及付款"),

	/** 个人网银付款 */
	_01("01","个人网银付款"),

	/** 个人虚拟账户付款 */
	_02("02","个人虚拟账户付款"),

	/** 个人借记卡快捷付款 */
	_03("03","个人借记卡快捷付款"),

	/** 06-个人信用卡快捷付款*/
	_06("06","个人信用卡快捷付款"),

	/** 个人信用卡无卡付款 */
	_04("04","个人信用卡无卡付款"),

	/** 个人WAP网银付款 */
	_08("08","个人WAP网银付款"),

	/** 个人银行汇款 */
	_49("49","个人银行汇款"),

	/** 个人现金付款 */
	_50("50","个人现金付款"),

	/** 企业网银付款 */
	_51("51","企业网银付款"),

	/** 企业虚拟账户付款 */
	_52("52","企业虚拟账户付款"),

	/** 企业银行汇款 */
	_98("98","企业银行汇款"),

	/** 企业现金付款 */
	_99("99","企业现金付款"),
    
    /**快捷信用卡API**/
    _30("30","个人信用卡快捷付款（API）"),

    /**快捷借记卡API**/
    _31("31","个人借记卡快捷付款（API）"),

    /**代扣API**/
    _32("32","个人代扣支付付款（API）"),

	/**三方扫码支付***/
	_16("16","三方线上扫码支付"),

	/**三方APP支付**/
	_17("17","三方APP支付"),

	/**三方线下扫码支付(微信公众号支付)**/
	_18("18","三方公众号/生活号支付"),
	/**
	 * 未选择PayChannel ,手机钱包使用 张建龙 2016-12-16
	 */
	_10("10","未支付"),
	/**委托代收支付**/
	_33("33","委托代收支付"),
	_34("34","直接代收支付"),
	/** 三方条码支付**/
	_25("25","三方条码支付"),
	_28("28","一码付线下扫码支付"),
	/**外卡支付新增支付方式*/
	_70("70","外卡支付"),

	/**E键支付新增支付方式*/
	_35("35","个人信用卡E键支付"),
	_36("36","个人借记卡E键支付");

	public final String value;
	
	/**
	 * 增加name值，用做翻译   add by fanghw 20161230
	 */
	public final String name;

	PayChannel(String value,String name) {
		this.value = value;
		this.name=name;
	}

	@Override
	public String toString() {
		return this.value;
	}
	
	/**
     * 根据枚举类型的字符串值 获取 相应的枚举变量
     */
    public static PayChannel get(String str) {
        PayChannel[] cs = PayChannel.class.getEnumConstants();
        for (PayChannel c : cs) {
            if (c.toString().equals(str)) {
				return c;
			}
        }
        throw new RuntimeException(" wrong " + PayChannel.class.getSimpleName() + " string value! " + str);
    }
	
	/**
	 * 翻译   add by fanghw 20161230
	 * @param value
	 * @return
	 */
	public static String translate(String value) {
		if(value == null||"".equals(value.trim())){
			return "";
		}
	    PayChannel pc= get(value);
        return pc.name;
    }

	/**
	 * @return 交易类型：是否个人
	 */
	public boolean isPersonType() {
		return !isCorpType();
	}

	/**
	 * @return 交易类型：是否企业
	 */
	public boolean isCorpType() {
		Integer in = Integer.parseInt(this.value);
		if (in > 50) {
			return true;
		} else {
			return false;
		}
	}

	

	/**
	 * @Description  国付宝与CFCA支付类型转换   反诈骗项目
	 * @Author jianghoupeng
	 * @Date 2016/11/22 15:40
	 */
	public static String getByGopayPayChannel(String payChannel){
	 if ("01".equals(payChannel) || "08".equals(payChannel) || "51".equals(payChannel)){
			return "1";//网关交易
		}else if ("03".equals(payChannel) || "06".equals(payChannel) || "30".equals(payChannel) || "31".equals(payChannel)){
			return "2";//快捷交易
		}else{
			return "4";//其他
		}
	}
}
